<test>
    <settings>
        <max_memory_usage>15G</max_memory_usage>
    </settings>

    <create_query>CREATE TABLE t (x UInt64, d32 Decimal32(3), d64 Decimal64(4), d128 Decimal128(5)) ENGINE = Memory</create_query>
    <!-- use less threads to save memory -->
    <fill_query>INSERT INTO t SELECT number AS x, x % 1000000 AS d32, x AS d64, x d128 FROM numbers_mt(200000000) SETTINGS max_threads = 8</fill_query>
    <drop_query>DROP TABLE IF EXISTS t</drop_query>

    <query>SELECT toUInt32(x)  y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toInt32(x)   y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toInt64(x)   y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toUInt64(x)  y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toInt128(x)  y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toInt256(x)  y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t LIMIT 10000000 FORMAT Null</query>
    <query>SELECT toUInt256(x) y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t LIMIT 10000000 FORMAT Null</query>
    <query>SELECT toFloat32(x) y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>
    <query>SELECT toFloat64(x) y, toDecimal32(y, 1), toDecimal64(y, 5), toDecimal128(y, 6) FROM t FORMAT Null</query>

    <query>SELECT toInt32(d32),   toInt64(d32),   toInt128(d32)   FROM t FORMAT Null</query>
    <query>SELECT toInt32(d64),   toInt64(d64),   toInt128(d64)   FROM t FORMAT Null</query>
    <query>SELECT toInt32(d128),  toInt64(d128),  toInt128(d128)  FROM t FORMAT Null</query>
    <query>SELECT toFloat32(d32), toFloat32(d64), toFloat32(d128) FROM t FORMAT Null</query>
    <query>SELECT toFloat64(d32), toFloat64(d64), toFloat64(d128) FROM t FORMAT Null</query>
    <query>SELECT toInt256(d32),  toInt256(d64),  toInt256(d128)  FROM t FORMAT Null</query>
</test>
